package DAOs;

import org.hibernate.Query;
import org.hibernate.Session;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;


import classes.Usuario;

public class UsuarioDAO {
	
	

	public static ThreadLocal<Session> getThreadLocal() {
		return threadLocal;
	}

	public static void setThreadLocal(ThreadLocal<Session> threadLocal) {
		UsuarioDAO.threadLocal = threadLocal;
	}

	private static ThreadLocal<Session> threadLocal = new ThreadLocal<Session>();
	
	public void registrar(Usuario user)  {		
		threadLocal.get().save(user);
	}
	
	public Usuario getUsuarioPorAlias(String alias) {
		Session session = threadLocal.get();
		
		//
		Query query = session.createQuery("FROM Usuario WHERE alias = :alias");
		query.setString("alias", alias);

		return (Usuario)query.uniqueResult();//.executeQuery();
	}
	
	public boolean existeUsuario(String alias){
		Session session = threadLocal.get();
		
		return this.getUsuarioPorAlias(alias) != null;
		
	}

	public void cambiarPassword(String alias, String password) {
		Session session = threadLocal.get();
	
		Usuario usuario = this.getUsuarioPorAlias(alias);
		usuario.setPassword(password);
	}
	public void borrarUsuario(Usuario user){
			Session session = threadLocal.get();
			
			session.delete(user);
	}
}
